std::cout<<"rty\rty"<<std::endl; 程序输出结果是tyy,为什么呢?

来源:百度知道 编辑:UC知道 时间:2024/06/25 22:15:50
int main()
{

std::cout<<"rty\rty"<<std::endl;
return 0;
}
输出是 tyy 为什么?
回答者:miximisi - 魔法师 四级 8-5 13:43
回答者:hsjjsjx - 千总 四级 8-5 14:39
两位说得都很好,我就按照时间先后给分了。十分感谢。
有了你们,网络才有意义!

先输出rty,此时光标停在y后面
后来碰到了\r
然后光标移动到本行开头(\r就是这个意思)
再输出ty,此时输出的ty会将原来的rt覆盖掉
所以最终输出的是tyy

#include<iostream>
int main()
{
std::cout << "rty\rty" << std::endl;
return 0;
}
回答者:miximisi - 魔法师 四级 8-5 13:43
这家伙是对的。

回车只是把光标移到当前行的第一个位置,这与我们平时所说回车是不一样的,键盘上的回车实际上是回车和换行的同时执行,\r 只是回车,然后再输出ty,这样就将先前输出到屏幕上的rty中的前两位替换,结果就变成了tyy。

\r 被转义了,代表【输入回车】
\r Carriage return